package com.share.trigger.api;

import com.share.trigger.api.dto.Activity.ActivityDrawRequestDTO;
import com.share.trigger.api.dto.Activity.ActivityDrawResponseDTO;
import com.share.trigger.api.dto.Activity.UserActivityAccountRequestDTO;
import com.share.trigger.api.dto.Activity.UserActivityAccountResponseDTO;
import com.share.trigger.api.dto.Raffle.RaffleAwardListRequestDTO;
import com.share.trigger.api.dto.Raffle.RaffleAwardListResponseDTO;
import com.share.types.model.Response;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface IRaffleActivityService {

    /**
     * 装配活动
     * @param activityId 活动id
     * @return
     */
    Response<Boolean> armory(Long activityId);

    /**
     * 查询活动奖品列表
     * @param raffleAwardListRequestDTO
     * @return
     */
    Response<List<RaffleAwardListResponseDTO>> queryRaffleAwardList(@RequestBody RaffleAwardListRequestDTO raffleAwardListRequestDTO);

    /**
     * 抽奖
     * @param activityDrawRequestDTO
     * @return
     */
    Response<ActivityDrawResponseDTO> draw(ActivityDrawRequestDTO activityDrawRequestDTO);

    /**
     * 日历签到返利接口
     * @param userId 用户id
     * @return bool
     */
    Response<Boolean> calendarSignRebate(String userId);

    /**
     * 是否已获得签到奖励
     * @param userId 用户id
     * @return bool
     */
    Response<Boolean> isCalendarSignRebate(String userId);

    /**
     * 查询抽奖次数
     * @param userId
     * @return
     */
    Response<UserActivityAccountResponseDTO> queryUserActivityCount(UserActivityAccountRequestDTO request);



}
